home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / N-P / Programmer.cpt / Programmer / Sys 4.1 Pgmr Notes 1_2 next >
Text File  |  1987-05-08  |  24KB  |  455 lines

  1. System 4.1 Programmers' Notes (Part 1 of 2, 25K)
  2.  
  3. System 4.0 to System 4.1 Change History
  4.  
  5.     This document outlines developer visible changes to the System Tools
  6.     disk 2.0 and Utilities disk 2.0.  This includes changes to System 4.1 and
  7.     Finder 5.5 and related files, and is a summary based on engineers' release
  8.     notes.  This information is in no way guaranteed to be accurate or
  9.     complete.
  10.  
  11. Copyright Apple Computer, Inc. 1987  All Rights Reserved.
  12.  
  13. Part 1 of 2
  14.  
  15. System Tools:
  16.  
  17.    TeachText
  18.         No Changes.
  19.  
  20.    System Folder:
  21.  
  22.       AppleTalk ImageWriter
  23.           Took out Control Panel and KeyCaps from installer script.
  24.  
  25.       Clipboard File
  26.           No changes.
  27.  
  28.       Easy Access
  29.           Easy Access is a new file in your System Folder containing two
  30.           features, "sticky keys" and "mouse keys."  These features
  31.           assist people with disabilities who have difficulty typing using
  32.           both hands on the keyboard, or manipulating the mouse.  And
  33.           they're useful to anyone who wants to be able to use the
  34.           keyboard one-handed, or make very fine movements of the
  35.           pointer with better control.  See the 'Read Me' file on the
  36.                     System Tools disk.
  37.  
  38.       Finder
  39.           Weird case of address error when opening trashed resource file
  40.           Copy hang in low FCB situation
  41.           Region handles (8) allocated open opening a window are
  42.           deallocated (rather than leaving 160 bytes hanging)
  43.           Adjusts a window, made large on a 12"+ screen, to a reasonable
  44.           size when opened on a smaller screen
  45.           Handles case of a subfolder of an identical name moved to same
  46.           level
  47.           TextEdit highlighting now sets ColorInvert for InvertRect calls
  48.           Copy get-info comments for two-forked files
  49.           Copy locked bits correctly
  50.           Duplicate sometimes renames buried files
  51.           Center dialogs/alerts on larger screens
  52.           Handle resource errors so large desktop files don't appear
  53.           Load SICNs on boot disk eject so disk swaps are cut back; also
  54.           preload fat trashcan.
  55.           Auto-watch disabled for a couple new certain cases when DAs
  56.           are brought up.
  57.           Disable autowatch during MenuKey and GetNext Event because DA
  58.           may be called.
  59.           Copy comments on second fork rather than first so comment
  60.           field won't be wiped by second fork SetCatInfo; skip info setting
  61.           on first fork (no longer needed); also copy icons with second
  62.           fork (minor - might as well delay this).
  63.           Fixed bug on duplicate which trashed data fork of file; we don't
  64.           exit our InputLoop due to  a TMFOErr if we have freed up FCBs;
  65.           we loop opening both file forks even if we run out of space.
  66.           LookUpName no longer kills memory allocation 0 when passed a
  67.           nil.  It will not produce conflicts with gfiles in HFS directories
  68.           which have dirIDs of -1 (invalid)
  69.           PreCheck call to PFOFldrBuried for HFS -> trash moves was
  70.           bogus because stack frame was not set up with HVolInfo.
  71.           Delayed this to Preflight return.  (this was causing a DIV0 error
  72.           in some cases).
  73.           Fixed incest check in Preflight (PFOMarkBuried)
  74.  
  75.       General
  76.           Includes Desktop pattern, Rate of Insertion Point Blinking, Menu
  77.           blinking, Time set, Date set, set Ram cache and speaker volume
  78.           for Control Panel.
  79.  
  80.       ImageWriter
  81.           Took out Control Panel and KeyCaps from installer Script.
  82.  
  83.       Key Layout
  84.  
  85.       Keyboard
  86.           Control Panel extension to set Key Repeat Rate, and Delay Until
  87.           Repeat for keyboard
  88.  
  89.       Laser Prep
  90.           New for 4.0 LaserWriter Driver.
  91.  
  92.       LaserWriter
  93.           Version 4.0 of LaserWriter software introduces several
  94.           enhancements you'll find when you choose Page Setup.  For an
  95.           explanation of the original features, see "More About Printing"
  96.           in your LaserWriter manual.  For new features, see the Read Me
  97.           document on the System Tools disk.
  98.  
  99.           Change Summary:
  100.           Fixed problem in title of window when printing catalog from
  101.           Finder.
  102.           Fixed problem printing icons from the finder.
  103.           Fixed problem in line layout when more than one systel appears
  104.           in a single line at the same time.
  105.           Fixed a layout problem when using Helvetica Narrow.
  106.           Fixed a problem calculating zoom range values in Page Setup
  107.           dialog.
  108.           Fixed patterns so theat they invert correctly when white on
  109.           black is selected in Page Setup Preferences dialog.
  110.           Fixed problem with super and subscripted text.
  111.           A bug in rotated patterns on 3rd party printers has been fixed.
  112.           Smooth4 fixed to take 1 bit wide bitmaps.
  113.           Stretch operator also fixed for imaging bitmaps at various
  114.           scalings
  115.           Fixed cover page to use the correct font so that line overlaps do
  116.           not occur.
  117.           Fixed problem with flat ovals.
  118.           More rigorous test for memory full problems and adjustment of
  119.           buffer allocation if memory is low.
  120.           Eliminated output control calls if an error exists. Clean up after
  121.           an error occurs should be faster.
  122.           PostScript Error causes an abort to occur so that problems
  123.           clean up much faster.
  124.           Fixed PostScript-in-Handle comment call.
  125.           The LaserWriter attempts to do its own line layout with what it
  126.           suspects are line printer widths. Printing of text should be
  127.           much faster.
  128.           Added several new features to the dialogs.
  129.           INSC resource in the LaserWriter is changed so that it installs
  130.           only LaserWriter and LaserPrep. It does not install Chooser,
  131.           Control Panel, or FONTs as the 3.3 driver used to.
  132.           INSC resource on the system tools disk is changed so that
  133.           it will install Times, Courier, and Helvetica version 2 FONDs.
  134.           These new FONDs have correct widths for condensed and
  135.           extended styles so that these styles should work correctly in
  136.           new applications on a Mac+.
  137.           Bitmap stretch in landscape mode fixed.
  138.           Line layout has been completely changed again so that an entire
  139.           line of text is buffered internally before it is sent to the
  140.           printer.  Then line layout is performed over the entire string
  141.           rather than just a piece of it.
  142.           Driver now downloads PostScript fonts even is that don't have
  143.           corresponding FONDs to go with them.
  144.           Bitmap printing now works a little differently.  Bitmaps are
  145.           now made to take the fastest path possible.
  146.           A problem which sometimes resulted in a Crash when the
  147.           system FOND was purged has been fixed.  The system FOND is
  148.           now never purged.
  149.           A problem in lines where multiple fonts and symbol characters
  150.           occur at the same time did not print some of the symbol
  151.           characters.  This has now been fixed.
  152.           B5 page size is now fixed to give the correct dimensions.
  153.           These meet Adobe's specifications for B5 paper size.
  154.           All carriage return characters in all fonts are forced to zero
  155.           width for text measure
  156.           Wide Margins/Narrow Margins selection in Options Dialog now
  157.           work properly
  158.           Added another option feature which allows users to select
  159.           PostScript style bitmap stretching or Macintosh style since
  160.           they are different.  This option also disable smoothing when
  161.           PostScript style is selected.
  162.           Dialog windows and Alerts are now centered on screen
  163.           independent of screen size.
  164.           The number of fonts which can be used in a system while
  165.           printing has been increased from approximately 150 to 32767 or
  166.           more, although the system itself will allow only about 500
  167.           families.
  168.           A problem printing strings ending with carriage return
  169.           characters has been fixed.  This was most noticeable in
  170.           applications with an extra byte appearing at the end of some
  171.           text strings.
  172.           If shrink by 4 percent is selected (better bitmap printing) is
  173.           selected, the image is now centered on the page.
  174.           Fixed problem with font substitution line layout.
  175.           Driver no longer leaves around an orphan handle after the printer
  176.           was reset following a re-initialization dialog.  The crash
  177.           occurred if the name of the printer was extra long (more than
  178.           15 characters).
  179.           Options have been reworked to make them more compact and
  180.           easier to use.
  181.           Fixed problem with rectangles, round rectangles, ovals and arcs
  182.           when drawn in quadrants other than the positive quadrant.  Most
  183.           documents never encounter any other area.
  184.           Fixed problem downloading third-party fonts.
  185.  
  186.       Monitors
  187.           New this release.  To support multiple video display modes and
  188.           monitors on Macintosh II.
  189.  
  190.       Mouse
  191.  
  192.       Scrapbook File
  193.           No changes
  194.  
  195.       Sound
  196.           Control panel extension to support new sound on Macintosh II.
  197.  
  198.       Startup Device
  199.           Control Panel extension to select which SCSI device to boot
  200.           from on Macintosh II and Macintosh SE.
  201.  
  202.       System
  203.  
  204.         QuickDraw
  205.             The 4.1 System file contains a ROM patch to the DrawPicture
  206.             trap which allows pictures created by Color QuickDraw
  207.             (version 2 pictures) to be played back on 128K and newer
  208.             ROMs.  If this patch is not present, version 2 pictures will be
  209.             displayed as blank areas.
  210.             There are several new QuickDraw features which are not
  211.             present in older versions.  These include RGB colors, new
  212.             transfer modes, pixel patterns (PixPats), pixel maps
  213.             (PixMaps), and "highlight" mode.  Some of these, such as
  214.             highlight mode, are irrelevant on a black and white display
  215.             and are ignored.  The others must be emulated as best as the
  216.             capabilities of B/W QuickDraw allow.  In general, the results
  217.             will be the same as when using Color QuickDraw to draw into
  218.             an old GrafPort on a 1-bit screen.
  219.  
  220.             Calls to RGBForeColor and RGBackColor are emulated by calls
  221.             to ForeColor and BackColor.  The supplied RGB value is
  222.             converted to one of the eight predefined colors in B/W
  223.             QuickDraw:  Black, White, Red, Green, Blue, Cyan, Magenta,
  224.             and Yellow.  The selection is based on whether the R, G or B
  225.             values are greater or less than 50%.  This applies only to
  226.             explicit calls to RGBForeColor and RGBackColor, not all color
  227.             information.  Note that pictures containing this information
  228.             will print in color on the ImageWriter II.
  229.  
  230.             Pixel patterns cannot in general be displayed with B/W
  231.             QuickDraw, since they can be of arbitrary sizes.  However,
  232.             PixPats contain within them a "1-bit" pattern, which has the
  233.             same format as an old style QuickDraw pattern.  The designer
  234.             of the PixPat can set this field to a representation of the
  235.             PixPat suitable for display on old machines; if not expressly
  236.             initialized this field contains a 50% gray pattern.  An
  237.             exception to this rule is dithered RGB patterns created by
  238.             MakeRGBPat.  Although these patterns contain full RGB
  239.             information, this cannot be used to set colors, as this can
  240.             only be done via ForeColor and BackColor, not by setting a
  241.             gray-level pattern.  Therefore, these patterns are
  242.             translated to one of eight gray-level patterns, based on the
  243.             luminance calculated form the RGB value in the pattern.  This
  244.             luminance is calculated in the YIQ color model, the same
  245.             model used when the gray-scale option is selected in the
  246.             Apple video driver.
  247.  
  248.             PixMaps present a similar problem to RGB patterns:  there is
  249.             no way to make use of the color information encoded in them.
  250.             These PixMaps are converted into old-style BitMaps by
  251.             mapping all the colors in them to either white or black,
  252.             depending on whether the average of the R, G and B values
  253.             exceeds or falls below a 50% gray level.  This results in a
  254.             "high-contrast" rendition of the image.
  255.  
  256.             The new, arithmetic transfer modes defined by Color
  257.             QuickDraw are mapped into "representative" old transfer
  258.             modes.  The mapping used is the same as that used by Color
  259.             QuickDraw when drawing in one-bit GrafPorts.
  260.  
  261.             There is one other issue regarding new pictures which has
  262.             nothing to do with what is in them:  their size.  Pictures
  263.             containing 8-bit PixMaps tend to be very large, in the
  264.             vicinity of 100K or more.  Many programs (notably MacWrite)
  265.             do not handle pictures larger than 32K in their data
  266.             structures and so are fundamentally incompatible with large
  267.             pictures.  Others run into problems with memory
  268.             management when whacking 100K pictures to play around
  269.             with before.  If large PixMaps (such as screen dumps) are not
  270.             used, however, version 2 pictures are only slightly larger
  271.             than their version 1 equivalents, and should not break any
  272.             application that handles version 1 pictures correctly.  Note
  273.             that it has been possible to have pictures larger than 32K
  274.             since the 128K ROM was released, but up until now it's been
  275.             very difficult to produce a picture that large.
  276.  
  277.             Fixed bug where color table was freed even if there wasn't
  278.             one.
  279.         ADBS
  280.             Keyboard ADB Service Routine Installer
  281.             Installs keyboard service routine data:  loads and locks the
  282.             KMAP and KCHR resources and updates the ADB Table.
  283.           'ADBS' (2, Locked)  [262]
  284.               KMAP 0 is used as default if correct one can't be found
  285.               Keyboard is flushed of messages on exit
  286.         DRVR
  287.           AppleTalk Drivers Version 48
  288.               Version 48 of the AppleTalk drivers contains significant
  289.               enhancements over the current version (40 in the MacPlus
  290.               ROMs, and 41 in system file 3.2).  These enhancements
  291.               include new calls and additional resources (e.g., all
  292.               dynamic sockets can be opened simultaneously; more than
  293.               one NBP request can be outstanding at any one time).
  294.               These drivers are used by the AppleShare server.  We
  295.               envision these drivers to be used in place of the MacPlus
  296.               ROM drivers in the two circumstances: (1) where one or more
  297.               of the new calls is required and (2) in servers where
  298.               additional resources are needed.  These new drivers are
  299.               completely compatible with the MacPlus ROM drivers, and
  300.               can be used in any situation where the ROM drivers were
  301.               used previously.
  302.               The developer should be aware however that use of these
  303.               drivers on a MacPlus or 512Ke will result in the loss of
  304.               about 11K of system heap, since they completely replace
  305.               the ROM drivers and since more memory is required to
  306.               provide the additional resources.  This may require the
  307.               system heap to be grown, depending on the application.
  308.               On an original ROM 512K Mac, these new drivers can be
  309.               placed in the system file and will load on the first _Open
  310.               call.  On a MacPlus or 512Ke, however, ROM drivers
  311.               supersede those in the system file, so the new drivers
  312.               must be loaded in some other method.Please contact APDA for
  313.                             complete information on AppleTalk Changes.
  314.           'DRVR' (13, ".Alarm Clock", Purgeable)  [3954]
  315.               Updates correctly when control panel changes time cycle.
  316.               Won't toggle AM/PM unless user does so.
  317.               Calls IUGetIntl instead of INTL resource with id=O.
  318.               Changed file Clock.a - Special case Mac II ROMs to update
  319.               flashing apple in Menu correctly.
  320.           'DRVR' (14, ".Key Caps", Purgeable)  [2250]
  321.               Added Saratoga resource to Key Layout file.
  322.           'DRVR' (15, ".Chooser", Purgeable)  [9094]
  323.               Credit no longer replaces user name
  324.               Added a strategic HNoPurge to prevent desktop resource
  325.               form getting purged at an inopportune time (very
  326.               unlikely).
  327.           'DRVR' (16, ".Find File", Purgeable)  [9250]
  328.               There is a new feature in the Find File desk accessory.
  329.               Once Find File locates a file with the name you've
  330.               specified, you can select the file and choose Move to
  331.               Desktop from the Find File menu.  The file will then
  332.               appear on your desktop.
  333.               As long as the file stays on the desktop when you're not
  334.               working on it, you can use the Put Away command to put
  335.               it back exactly where it came from.  Or you can put away
  336.               the file yourself (in any window or folder).
  337.  
  338.               Change Summary:
  339.               MoveToDesktop command added. This command moves the
  340.               currently selected file in the list of found files to the
  341.               Finder's desktop, as if the user had dragged it there. The
  342.               file is also deleted from the list of found files. The file
  343.               can be moved back to its original folder by selecting the
  344.               Finder's PutAway menu command.
  345.               It is no longer possible to edit text while Find File is
  346.               searching.
  347.               The Cut and Copy commands no longer destroy the desk
  348.               scrap when no text is selected.
  349.               Disable Move To Desktop if we are running with
  350.               AppleShare server active.
  351.           'DRVR' (17, ".Scrapbook", Purgeable)  [2944]
  352.           'DRVR' (18, ".Control Panel", Purgeable)  [4612]
  353.               The ram cache arrows and size indicators do not appear if
  354.               the control panel is running under switcher or twitcher.
  355.               A reset pRAM feature has been added.  Since the battery
  356.               cannot be unplugged from the system in the MacII or Mac
  357.               SE, recover from bad pRAM settings can not be solved in
  358.               the usual way.  As a way of "unpluging" the battery, a
  359.               power feature has been added to the control panel. It is
  360.               intended to be used only in connection with assistance
  361.               from Apple"s tech support people.
  362.               Access to this feature is made by holding down the Shift,
  363.               Command, and Option key while launching the control
  364.               panel.  If the machine is either a Mac SE or a MacII, then a
  365.               dialog will appear informing the user of what is about to
  366.               happen.  If the user chooses to continue, the pram validity
  367.               byte is trashed and upon restart the pRAM will be reset
  368.               to its default values.  The clock/calender settings are not
  369.               affected.Update of pram's desktop bit.
  370.               Double clicking in the 'mini desktop' now save the edited
  371.               ppat to the ppt# resource without updating the desktop.
  372.               Single clicks still update the desktop.
  373.         DSAT
  374.           'DSAT' (2, SysHeap, Locked)  [1200]
  375.               Loaded by the script manager when the Initialization
  376.               Resources are executed.  These used to be INIT 2 but were
  377.               moved for the Script Manager.  The Shutdown alert has
  378.               also been added.
  379.         FKEY
  380.           'FKEY' (3, Purgeable)  [612]
  381.               Function Key 3  (Command-Shift-3)  --  Creates a
  382.               MacPaint document consisting of a snapshot of the screen.
  383.               Now checks for bit depth of screen.  Will not snapshot if
  384.               depth <>1.
  385.               Uses the first entry int the DeviceList as the screen to
  386.               snapshot instead of using the low memory global
  387.               scrnbase.
  388.         INIT
  389.             Moved HD20 startup alert here from the boot table.
  390.  
  391.             Removed the HD20 Startup alert.  It no resides in the user
  392.             alert table.
  393.           'INIT' (0, SysHeap, Locked)  [222]
  394.               Changed INIT o to have precisely the same header is
  395.               historical versions.  Some Apple applications and possibly
  396.               other depend on subtle, undocumented local variables
  397.               stuffed into the INIT=O header.  Some Apple applications
  398.               have been trashing KeyTrans, causing this ugly behavior.
  399.               Major changes in this software:
  400.               Added new meta-number for keyboard script toggling.
  401.               Replaced AppScript global and environment verb with Last
  402.               Script.
  403.               Removed NewBufPtr call in untweaked version of
  404.               initialization code.
  405.               Keyboard and DSAT loading is no longer dependent on the
  406.               ScriptManager, since we can use ExpandMem fields.
  407.               Key1Trans and Key2Trans now only depend on the
  408.               KeyTrans trap:  each is otherwise self-contained.  They
  409.               now function properly at INIT 31 time.
  410.               DSAT 2 (used to be DSAT 1) now is loaded by PTCH 0 to
  411.               fix Startup code bug.
  412.           'INIT' (1, SysHeap, Locked)  [222]
  413.               These use to contain the keyboard translation hooks and
  414.               would append themselves onto the system when they were
  415.               first executed by storing pointers into themselves in low
  416.               memory globals (Key1Trans and Key2Trans).  They still
  417.               use these hooks, but no longer contain the keyboard
  418.               translation code.  This code has now been moved into the
  419.               ROM (into the patch code for older machines) and can be
  420.               accessed via the _KeyTrans trap.  The hooks in these
  421.               resources now just copy the arguments and call the trap.
  422.               This was done so that the older machines would use the
  423.               new keyboard mechanism, which is much better than the
  424.               old one.
  425.           'INIT' (13, SysHeap, Locked)  [256]
  426.               This is the patch for BlockMove and OpenResFile
  427.           'INIT' (2, Locked)  [5042]
  428.               This resource contains the code for the Script Manager
  429.               and the Roman Interface System.  When it is executed the
  430.               first time, it allocates the global storage for the Script
  431.               Manager and sets up the script environment and the
  432.               _ScriptUtil trap.  Other script interface systems plug into
  433.               this environment by storing a pointer in the Script
  434.               Manager globals.  This resource is also responsible for
  435.               loading the user alert table, DSAT 2, which it replaced.
  436.           'INIT' (22, SysHeap, Purgeable, Locked)  [276]
  437.               Opens MPP out of the file AppleTalk in the System Folder.
  438.  
  439.               Change Summary:
  440.               Guarantee 16k in sys heap if doing open.
  441.           'INIT' (3, "Q", SysHeap, Locked)  [580]
  442.               Patch code which supports the MiniFinder launching as
  443.               well as "SubLaunch" of an application from another.
  444.               The Shutdown calls used to do an UnloadScrap before
  445.               unmounting and ejecting the disks.  This was causing
  446.               minor problems in the Finder, since it would require
  447.               inserting the disk if it was not in the machine.  Since the
  448.               Clipboard File is ignored when you re-boot, there is no
  449.               reason to write it out anyway.
  450.           'INIT' (30, Locked)  [318]
  451.               Installs the necessary mouse tracking code for Mac Plus.
  452.               Uses 'mcky' mouse tracking bytes.
  453.  
  454. 100,102,200,202,300,302,500,502,600,602,700,702
  455.